package model;

/**
 * The EditorListener interface defines all functions that a class
 * which listens on a LevelEditor must implement.
 * 
 * @author Alexander Craig
 */
public interface EditorListener {
	/**
	 * Called when a new level is generated.
	 * @param event	stores a reference to the LevelEditor that called this function
	 */
	public void newLevel(EditorEvent event);
	
	/**
	 * Called when a selected tile is changed.
	 * @param event	stores a reference to the LevelEditor that called this function
	 */
	public void selectionChange(EditorEvent event);
	
	/**
	 * Called when any change happens to the maze structure.
	 * @param event	stores a reference to the LevelEditor that called this function
	 */
	public void mazeChange(EditorEvent event);
	
	/**
	 * Called whenever the editor changes tools.
	 * @param event	stores a reference to the LevelEditor that called this function
	 */
	public void toolChange(EditorEvent event);
}
